package com.ruoyi.psi.base.product.mapper;

import com.ruoyi.psi.base.product.domain.*;

import java.util.List;

/**
 * 产品 数据层
 */
public interface ProductMapper {
    /**
     * 根据条件查询产品
     * @param cond 条件
     * @return 产品集合
     */
    List<ProductDto> selectProductList(ProductCond cond);

    /**
     * 根据id查询产品
     * @param produceId 产品编号
     * @return 产品
     */
    ProductDto selectProductById(String produceId);

    /**
     * 新增产品
     * @param product 产品信息
     * @return 结果
     */
    int insertProduct(ProductDomain product);

    /**
     * 修改产品数据
     * @param product 产品信息
     * @return 结果
     */
    int updateProduct(ProductDomain product);

    /**
     * 删除功能
     * 更新对应产品删除标志
     * @param product 产品信息
     * @return
     */
    int updateProductDeleteFlag(ProductDomain product);

    /**
     * 查询所有产品信息
     * @param cond
     * @return
     */
    List<ProductDto> selectAllProduct(ProductCond cond);

    /**
     * 查询所有原料信息
     * @param cond
     * @return
     */
    List<ProductDto> selectAllMaterial(ProductCond cond);

    /**
     * 查询各自不同种类产品的入库数量
     * @return
     */
    List<ProductStorage> selectProductStorageByCategoryId(String baseCategoryName);

    /**
     * 查询各自不同种类产品的出库数量
     * @return
     */
    List<ProductDelivery> selectProductDeliveryByCategoryId(String baseCategoryName);
}
